package com.itdachang.design.behavioral.template;

/**
 * @author gcq
 * @Create 2022-02-13
 */
public abstract class CookTemplate {
    /**
     * 默认方法
     */
    public void cook() {
        // 定义算法步骤

        // 部分步骤留给子类继承来实现
        // 开火
        heating();
        // 加食物
        addfood(); // v
        // 加盐
        addsalt(); // v
        // 翻炒
        stirfry();
        // 出锅
        end();;
    }

    /**
     * 加热
     */
    public void heating() {
        System.out.println("开火....");
    }

    /**
     * 添加食物
     */
    public abstract void addfood();

    /**
     * 添加盐
     */
    public abstract void addsalt();

    /**
     * 翻炒
     */
    public void stirfry() {
        System.out.println("开始翻炒");
    }

    /**
     * 出锅
     */
    public void end() {
        System.out.println("结束出锅");
    }
}